package com.atguigu.cloud.config;/**
 * @Auter zzh
 * @Date 2024/11/13
 */

import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;

/**
 * @projectName: keshe
 * @package: com.atguigu.cloud.config
 * @className: SwaggerConfiguration
 * @author: Eric
 * @description: TODO
 * @date: 2024/11/13 17:25
 * @version: 1.0
 */
@Configuration

public class SwaggerConfiguration {

    @Bean
    public GroupedOpenApi adminApi()
    {
        //以/admin开头的请求都是管理员模块
        return GroupedOpenApi.builder().group("管理员模块").pathsToMatch("/admin/**").build();
    }
    @Bean
    public GroupedOpenApi MerchantApi()
    {
        //以/merchant开头的请求都是商家模块
        return GroupedOpenApi.builder().group("商家模块").pathsToMatch("/merchant/**").build();
    }
    @Bean
    public GroupedOpenApi CollectApi()
    {
        //以/collect开头的请求都是收藏模块
        return GroupedOpenApi.builder().group("收藏模块").pathsToMatch("/collect/**").build();
    }
    @Bean
    public GroupedOpenApi OrderApi()
    {
        //以/order开头的请求都是订单模块
        return GroupedOpenApi.builder().group("订单模块").pathsToMatch("/order/**").build();
    }
    @Bean
    public GroupedOpenApi ProductApi()
    {
        //以/product开头的请求都是商品模块
        return GroupedOpenApi.builder().group("商品模块").pathsToMatch("/product/**").build();
    }
    @Bean
    public GroupedOpenApi UserApi()
    {
        //以/user开头的请求都是用户模块
        return GroupedOpenApi.builder().group("用户模块").pathsToMatch("/user/**").build();
    }
    @Bean
    public GroupedOpenApi shoppingApi() {
        //以/shopping开头的请求都是购物车模块
        return GroupedOpenApi.builder().group("购物车模块").pathsToMatch("/shopcar/**").build();
    }

    @Bean
    public GroupedOpenApi loginApi() {
        //以/shopping开头的请求都是购物车模块
        return GroupedOpenApi.builder().group("登录模块").pathsToMatch("/login/**").build();
    }

    @Bean
    public GroupedOpenApi registerApi() {
        //以/shopping开头的请求都是购物车模块
        return GroupedOpenApi.builder().group("注册模块").pathsToMatch("/register/**").build();
    }

    @Bean
    public GroupedOpenApi OtherApi()
    {
        //以/other开头的都是其他模块的请求
        return GroupedOpenApi.builder().group("其它微服务模块").pathsToMatch("/other/**", "/others").build();
    }

    @Bean
    public OpenAPI docsOpenApi()
    {
        return new OpenAPI()
                .info(new Info().title("cloud2024")
                        .description("通用设计rest")
                        .version("v1.0"))
                .externalDocs(new ExternalDocumentation()
                        .description("www.atguigu.com")
                        .url("https://yiyan.baidu.com/"));
    }
}
